/* Modernizr 2.8.1 (Custom Build) | MIT & BSD
 * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-shiv-mq-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load
 */
;
window.Modernizr = function(a, b, c) {
	function C(a) {
		j.cssText = a
	}

	function D(a, b) {
		return C(n.join(a + ";") + (b || ""))
	}

	function E(a, b) {
		return typeof a === b
	}

	function F(a, b) {
		return !!~("" + a).indexOf(b)
	}

	function G(a, b) {
		for (var d in a) {
			var e = a[d];
			if (!F(e, "-") && j[e] !== c) return b == "pfx" ? e : !0
		}
		return !1
	}

	function H(a, b, d) {
		for (var e in a) {
			var f = b[a[e]];
			if (f !== c) return d === !1 ? a[e] : E(f, "function") ? f.bind(d || b) : f
		}
		return !1
	}

	function I(a, b, c) {
		var d = a.charAt(0).toUpperCase() + a.slice(1),
			e = (a + " " + p.join(d + " ") + d).split(" ");
		return E(b, "string") || E(b, "undefined") ? G(e, b) : (e = (a + " " + q.join(d + " ") + d).split(" "), H(e, b, c))
	}

	function J() {
		e.input = function(c) {
			for (var d = 0, e = c.length; d < e; d++) t[c[d]] = c[d] in k;
			return t.list && (t.list = !! b.createElement("datalist") && !! a.HTMLDataListElement), t
		}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")), e.inputtypes = function(a) {
			for (var d = 0, e, f, h, i = a.length; d < i; d++) k.setAttribute("type", f = a[d]), e = k.type !== "text", e && (k.value = l, k.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(f) && k.style.WebkitAppearance !== c ? (g.appendChild(k), h = b.defaultView, e = h.getComputedStyle && h.getComputedStyle(k, null).WebkitAppearance !== "textfield" && k.offsetHeight !== 0, g.removeChild(k)) : /^(search|tel)$/.test(f) || (/^(url|email)$/.test(f) ? e = k.checkValidity && k.checkValidity() === !1 : e = k.value != l)), s[a[d]] = !! e;
			return s
		}("search tel url email datetime date month week time datetime-local number range color".split(" "))
	}
	var d = "2.8.0",
		e = {}, f = !0,
		g = b.documentElement,
		h = "modernizr",
		i = b.createElement(h),
		j = i.style,
		k = b.createElement("input"),
		l = ":)",
		m = {}.toString,
		n = " -webkit- -moz- -o- -ms- ".split(" "),
		o = "Webkit Moz O ms",
		p = o.split(" "),
		q = o.toLowerCase().split(" "),
		r = {}, s = {}, t = {}, u = [],
		v = u.slice,
		w, x = function(a, c, d, e) {
			var f, i, j, k, l = b.createElement("div"),
				m = b.body,
				n = m || b.createElement("body");
			if (parseInt(d, 10))
				while (d--) j = b.createElement("div"), j.id = e ? e[d] : h + (d + 1), l.appendChild(j);
			return f = ["&#173;", '<style id="s', h, '">', a, "</style>"].join(""), l.id = h, (m ? l : n).innerHTML += f, n.appendChild(l), m || (n.style.background = "", n.style.overflow = "hidden", k = g.style.overflow, g.style.overflow = "hidden", g.appendChild(n)), i = c(l, a), m ? l.parentNode.removeChild(l) : (n.parentNode.removeChild(n), g.style.overflow = k), !! i
		}, y = function(b) {
			var c = a.matchMedia || a.msMatchMedia;
			if (c) return c(b) && c(b).matches || !1;
			var d;
			return x("@media " + b + " { #" + h + " { position: absolute; } }", function(b) {
				d = (a.getComputedStyle ? getComputedStyle(b, null) : b.currentStyle)["position"] == "absolute"
			}), d
		}, z = function() {
			function d(d, e) {
				e = e || b.createElement(a[d] || "div"), d = "on" + d;
				var f = d in e;
				return f || (e.setAttribute || (e = b.createElement("div")), e.setAttribute && e.removeAttribute && (e.setAttribute(d, ""), f = E(e[d], "function"), E(e[d], "undefined") || (e[d] = c), e.removeAttribute(d))), e = null, f
			}
			var a = {
				select: "input",
				change: "input",
				submit: "form",
				reset: "form",
				error: "img",
				load: "img",
				abort: "img"
			};
			return d
		}(),
		A = {}.hasOwnProperty,
		B;
	!E(A, "undefined") && !E(A.call, "undefined") ? B = function(a, b) {
		return A.call(a, b)
	} : B = function(a, b) {
		return b in a && E(a.constructor.prototype[b], "undefined")
	}, Function.prototype.bind || (Function.prototype.bind = function(b) {
		var c = this;
		if (typeof c != "function") throw new TypeError;
		var d = v.call(arguments, 1),
			e = function() {
				if (this instanceof e) {
					var a = function() {};
					a.prototype = c.prototype;
					var f = new a,
						g = c.apply(f, d.concat(v.call(arguments)));
					return Object(g) === g ? g : f
				}
				return c.apply(b, d.concat(v.call(arguments)))
			};
		return e
	}), r.flexbox = function() {
		return I("flexWrap")
	}, r.flexboxlegacy = function() {
		return I("boxDirection")
	}, r.canvas = function() {
		var a = b.createElement("canvas");
		return !!a.getContext && !! a.getContext("2d")
	}, r.canvastext = function() {
		return !!e.canvas && !! E(b.createElement("canvas").getContext("2d").fillText, "function")
	}, r.postmessage = function() {
		return !!a.postMessage
	}, r.websqldatabase = function() {
		return !!a.openDatabase
	}, r.indexedDB = function() {
		return !!I("indexedDB", a)
	}, r.hashchange = function() {
		return z("hashchange", a) && (b.documentMode === c || b.documentMode > 7)
	}, r.history = function() {
		return !!a.history && !! history.pushState
	}, r.draganddrop = function() {
		var a = b.createElement("div");
		return "draggable" in a || "ondragstart" in a && "ondrop" in a
	}, r.websockets = function() {
		return "WebSocket" in a || "MozWebSocket" in a
	}, r.rgba = function() {
		return C("background-color:rgba(150,255,150,.5)"), F(j.backgroundColor, "rgba")
	}, r.hsla = function() {
		return C("background-color:hsla(120,40%,100%,.5)"), F(j.backgroundColor, "rgba") || F(j.backgroundColor, "hsla")
	}, r.multiplebgs = function() {
		return C("background:url(https://),url(https://),red url(https://)"), /(url\s*\(.*?){3}/.test(j.background)
	}, r.backgroundsize = function() {
		return I("backgroundSize")
	}, r.borderimage = function() {
		return I("borderImage")
	}, r.borderradius = function() {
		return I("borderRadius")
	}, r.boxshadow = function() {
		return I("boxShadow")
	}, r.textshadow = function() {
		return b.createElement("div").style.textShadow === ""
	}, r.opacity = function() {
		return D("opacity:.55"), /^0.55$/.test(j.opacity)
	}, r.cssanimations = function() {
		return I("animationName")
	}, r.csscolumns = function() {
		return I("columnCount")
	}, r.cssgradients = function() {
		var a = "background-image:",
			b = "gradient(linear,left top,right bottom,from(#9f9),to(white));",
			c = "linear-gradient(left top,#9f9, white);";
		return C((a + "-webkit- ".split(" ").join(b + a) + n.join(c + a)).slice(0, -a.length)), F(j.backgroundImage, "gradient")
	}, r.cssreflections = function() {
		return I("boxReflect")
	}, r.csstransforms = function() {
		return !!I("transform")
	}, r.csstransforms3d = function() {
		var a = !! I("perspective");
		return a && "webkitPerspective" in g.style && x("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function(b, c) {
			a = b.offsetLeft === 9 && b.offsetHeight === 3
		}), a
	}, r.csstransitions = function() {
		return I("transition")
	}, r.fontface = function() {
		var a;
		return x('@font-face {font-family:"font";src:url("https://")}', function(c, d) {
			var e = b.getElementById("smodernizr"),
				f = e.sheet || e.styleSheet,
				g = f ? f.cssRules && f.cssRules[0] ? f.cssRules[0].cssText : f.cssText || "" : "";
			a = /src/i.test(g) && g.indexOf(d.split(" ")[0]) === 0
		}), a
	}, r.generatedcontent = function() {
		var a;
		return x(["#", h, "{font:0/0 a}#", h, ':after{content:"', l, '";visibility:hidden;font:3px/1 a}'].join(""), function(b) {
			a = b.offsetHeight >= 3
		}), a
	}, r.video = function() {
		var a = b.createElement("video"),
			c = !1;
		try {
			if (c = !! a.canPlayType) c = new Boolean(c), c.ogg = a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), c.h264 = a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), c.webm = a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, "")
		} catch (d) {}
		return c
	}, r.audio = function() {
		var a = b.createElement("audio"),
			c = !1;
		try {
			if (c = !! a.canPlayType) c = new Boolean(c), c.ogg = a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), c.mp3 = a.canPlayType("audio/mpeg;").replace(/^no$/, ""), c.wav = a.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""), c.m4a = (a.canPlayType("audio/x-m4a;") || a.canPlayType("audio/aac;")).replace(/^no$/, "")
		} catch (d) {}
		return c
	}, r.localstorage = function() {
		try {
			return localStorage.setItem(h, h), localStorage.removeItem(h), !0
		} catch (a) {
			return !1
		}
	}, r.sessionstorage = function() {
		try {
			return sessionStorage.setItem(h, h), sessionStorage.removeItem(h), !0
		} catch (a) {
			return !1
		}
	}, r.webworkers = function() {
		return !!a.Worker
	}, r.applicationcache = function() {
		return !!a.applicationCache
	};
	for (var K in r) B(r, K) && (w = K.toLowerCase(), e[w] = r[K](), u.push((e[w] ? "" : "no-") + w));
	return e.input || J(), e.addTest = function(a, b) {
		if (typeof a == "object")
			for (var d in a) B(a, d) && e.addTest(d, a[d]);
		else {
			a = a.toLowerCase();
			if (e[a] !== c) return e;
			b = typeof b == "function" ? b() : b, typeof f != "undefined" && f && (g.className += " " + (b ? "" : "no-") + a), e[a] = b
		}
		return e
	}, C(""), i = k = null,
	function(a, b) {
		function l(a, b) {
			var c = a.createElement("p"),
				d = a.getElementsByTagName("head")[0] || a.documentElement;
			return c.innerHTML = "x<style>" + b + "</style>", d.insertBefore(c.lastChild, d.firstChild)
		}

		function m() {
			var a = s.elements;
			return typeof a == "string" ? a.split(" ") : a
		}

		function n(a) {
			var b = j[a[h]];
			return b || (b = {}, i++, a[h] = i, j[i] = b), b
		}

		function o(a, c, d) {
			c || (c = b);
			if (k) return c.createElement(a);
			d || (d = n(c));
			var g;
			return d.cache[a] ? g = d.cache[a].cloneNode() : f.test(a) ? g = (d.cache[a] = d.createElem(a)).cloneNode() : g = d.createElem(a), g.canHaveChildren && !e.test(a) && !g.tagUrn ? d.frag.appendChild(g) : g
		}

		function p(a, c) {
			a || (a = b);
			if (k) return a.createDocumentFragment();
			c = c || n(a);
			var d = c.frag.cloneNode(),
				e = 0,
				f = m(),
				g = f.length;
			for (; e < g; e++) d.createElement(f[e]);
			return d
		}

		function q(a, b) {
			b.cache || (b.cache = {}, b.createElem = a.createElement, b.createFrag = a.createDocumentFragment, b.frag = b.createFrag()), a.createElement = function(c) {
				return s.shivMethods ? o(c, a, b) : b.createElem(c)
			}, a.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + m().join().replace(/[\w\-]+/g, function(a) {
				return b.createElem(a), b.frag.createElement(a), 'c("' + a + '")'
			}) + ");return n}")(s, b.frag)
		}

		function r(a) {
			a || (a = b);
			var c = n(a);
			return s.shivCSS && !g && !c.hasCSS && (c.hasCSS = !! l(a, "article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")), k || q(a, c), a
		}
		var c = "3.7.0",
			d = a.html5 || {}, e = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,
			f = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,
			g, h = "_html5shiv",
			i = 0,
			j = {}, k;
		(function() {
			try {
				var a = b.createElement("a");
				a.innerHTML = "<xyz></xyz>", g = "hidden" in a, k = a.childNodes.length == 1 || function() {
					b.createElement("a");
					var a = b.createDocumentFragment();
					return typeof a.cloneNode == "undefined" || typeof a.createDocumentFragment == "undefined" || typeof a.createElement == "undefined"
				}()
			} catch (c) {
				g = !0, k = !0
			}
		})();
		var s = {
			elements: d.elements || "abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",
			version: c,
			shivCSS: d.shivCSS !== !1,
			supportsUnknownElements: k,
			shivMethods: d.shivMethods !== !1,
			type: "default",
			shivDocument: r,
			createElement: o,
			createDocumentFragment: p
		};
		a.html5 = s, r(b)
	}(this, b), e._version = d, e._prefixes = n, e._domPrefixes = q, e._cssomPrefixes = p, e.mq = y, e.hasEvent = z, e.testProp = function(a) {
		return G([a])
	}, e.testAllProps = I, e.testStyles = x, g.className = g.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (f ? " js " + u.join(" ") : ""), e
}(this, this.document),
function(a, b, c) {
	function d(a) {
		return "[object Function]" == o.call(a)
	}

	function e(a) {
		return "string" == typeof a
	}

	function f() {}

	function g(a) {
		return !a || "loaded" == a || "complete" == a || "uninitialized" == a
	}

	function h() {
		var a = p.shift();
		q = 1, a ? a.t ? m(function() {
			("c" == a.t ? B.injectCss : B.injectJs)(a.s, 0, a.a, a.x, a.e, 1)
		}, 0) : (a(), h()) : q = 0
	}

	function i(a, c, d, e, f, i, j) {
		function k(b) {
			if (!o && g(l.readyState) && (u.r = o = 1, !q && h(), l.onload = l.onreadystatechange = null, b)) {
				"img" != a && m(function() {
					t.removeChild(l)
				}, 50);
				for (var d in y[c]) y[c].hasOwnProperty(d) && y[c][d].onload()
			}
		}
		var j = j || B.errorTimeout,
			l = b.createElement(a),
			o = 0,
			r = 0,
			u = {
				t: d,
				s: c,
				e: f,
				a: i,
				x: j
			};
		1 === y[c] && (r = 1, y[c] = []), "object" == a ? l.data = c : (l.src = c, l.type = a), l.width = l.height = "0", l.onerror = l.onload = l.onreadystatechange = function() {
			k.call(this, r)
		}, p.splice(e, 0, u), "img" != a && (r || 2 === y[c] ? (t.insertBefore(l, s ? null : n), m(k, j)) : y[c].push(l))
	}

	function j(a, b, c, d, f) {
		return q = 0, b = b || "j", e(a) ? i("c" == b ? v : u, a, b, this.i++, c, d, f) : (p.splice(this.i++, 0, a), 1 == p.length && h()), this
	}

	function k() {
		var a = B;
		return a.loader = {
			load: j,
			i: 0
		}, a
	}
	var l = b.documentElement,
		m = a.setTimeout,
		n = b.getElementsByTagName("script")[0],
		o = {}.toString,
		p = [],
		q = 0,
		r = "MozAppearance" in l.style,
		s = r && !! b.createRange().compareNode,
		t = s ? l : n.parentNode,
		l = a.opera && "[object Opera]" == o.call(a.opera),
		l = !! b.attachEvent && !l,
		u = r ? "object" : l ? "script" : "img",
		v = l ? "script" : u,
		w = Array.isArray || function(a) {
			return "[object Array]" == o.call(a)
		}, x = [],
		y = {}, z = {
			timeout: function(a, b) {
				return b.length && (a.timeout = b[0]), a
			}
		}, A, B;
	B = function(a) {
		function b(a) {
			var a = a.split("!"),
				b = x.length,
				c = a.pop(),
				d = a.length,
				c = {
					url: c,
					origUrl: c,
					prefixes: a
				}, e, f, g;
			for (f = 0; f < d; f++) g = a[f].split("="), (e = z[g.shift()]) && (c = e(c, g));
			for (f = 0; f < b; f++) c = x[f](c);
			return c
		}

		function g(a, e, f, g, h) {
			var i = b(a),
				j = i.autoCallback;
			i.url.split(".").pop().split("?").shift(), i.bypass || (e && (e = d(e) ? e : e[a] || e[g] || e[a.split("/").pop().split("?")[0]]), i.instead ? i.instead(a, e, f, g, h) : (y[i.url] ? i.noexec = !0 : y[i.url] = 1, f.load(i.url, i.forceCSS || !i.forceJS && "css" == i.url.split(".").pop().split("?").shift() ? "c" : c, i.noexec, i.attrs, i.timeout), (d(e) || d(j)) && f.load(function() {
				k(), e && e(i.origUrl, h, g), j && j(i.origUrl, h, g), y[i.url] = 2
			})))
		}

		function h(a, b) {
			function c(a, c) {
				if (a) {
					if (e(a)) c || (j = function() {
						var a = [].slice.call(arguments);
						k.apply(this, a), l()
					}), g(a, j, b, 0, h);
					else if (Object(a) === a)
						for (n in m = function() {
							var b = 0,
								c;
							for (c in a) a.hasOwnProperty(c) && b++;
							return b
						}(), a) a.hasOwnProperty(n) && (!c && !--m && (d(j) ? j = function() {
							var a = [].slice.call(arguments);
							k.apply(this, a), l()
						} : j[n] = function(a) {
							return function() {
								var b = [].slice.call(arguments);
								a && a.apply(this, b), l()
							}
						}(k[n])), g(a[n], j, b, n, h))
				} else !c && l()
			}
			var h = !! a.test,
				i = a.load || a.both,
				j = a.callback || f,
				k = j,
				l = a.complete || f,
				m, n;
			c(h ? a.yep : a.nope, !! i), i && c(i)
		}
		var i, j, l = this.yepnope.loader;
		if (e(a)) g(a, 0, l, 0);
		else if (w(a))
			for (i = 0; i < a.length; i++) j = a[i], e(j) ? g(j, 0, l, 0) : w(j) ? B(j) : Object(j) === j && h(j, l);
		else Object(a) === a && h(a, l)
	}, B.addPrefix = function(a, b) {
		z[a] = b
	}, B.addFilter = function(a) {
		x.push(a)
	}, B.errorTimeout = 1e4, null == b.readyState && b.addEventListener && (b.readyState = "loading", b.addEventListener("DOMContentLoaded", A = function() {
		b.removeEventListener("DOMContentLoaded", A, 0), b.readyState = "complete"
	}, 0)), a.yepnope = k(), a.yepnope.executeStack = h, a.yepnope.injectJs = function(a, c, d, e, i, j) {
		var k = b.createElement("script"),
			l, o, e = e || B.errorTimeout;
		k.src = a;
		for (o in d) k.setAttribute(o, d[o]);
		c = j ? h : c || f, k.onreadystatechange = k.onload = function() {
			!l && g(k.readyState) && (l = 1, c(), k.onload = k.onreadystatechange = null)
		}, m(function() {
			l || (l = 1, c(1))
		}, e), i ? k.onload() : n.parentNode.insertBefore(k, n)
	}, a.yepnope.injectCss = function(a, c, d, e, g, i) {
		var e = b.createElement("link"),
			j, c = i ? h : c || f;
		e.href = a, e.rel = "stylesheet", e.type = "text/css";
		for (j in d) e.setAttribute(j, d[j]);
		g || (n.parentNode.insertBefore(e, n), m(c, 0))
	}
}(this, document), Modernizr.load = function() {
	yepnope.apply(window, [].slice.call(arguments, 0))
};